//package com.lej.login.editInfo
//
//import android.content.pm.ActivityInfo
//import android.graphics.Color
//import android.util.Log
//import android.view.View
//import androidx.core.view.updatePadding
//import androidx.lifecycle.lifecycleScope
//import com.alibaba.android.arouter.facade.annotation.Route
//import com.bigkoo.pickerview.configure.PickerOptions
//import com.bigkoo.pickerview.listener.OnTimeSelectListener
//import com.bigkoo.pickerview.view.TimePickerView
//import com.lej.core.QiNiuUtils
//import com.lej.core.base.BaseActivity
//import com.lej.core.base.statusHeight
//import com.lej.core.common.*
//import com.lej.core.router.CRouter
//import com.lej.core.utils.extention.toast
//import com.lej.core.utils.load
//import com.lej.dataservice.club.http.*
//import com.lej.dataservice.club.http.base.getBody
//import com.lej.login.BR
//import com.lej.login.R
//import com.lej.login.databinding.ActivityLoginPageEditInfoBinding
//import com.lej.picture.PictureSelector
//import com.lej.picture.config.PictureConfig
//import com.lej.picture.config.PictureMimeType
//import com.lej.picture.engine.GlideEngine
//import com.lej.picture.entity.LocalMedia
//import com.lej.picture.listener.OnResultCallbackListener
//import com.lej.picture.style.PictureCropParameterStyle
//import com.lxj.xpopup.XPopup
//import com.qmuiteam.qmui.kotlin.onClick
//import com.qmuiteam.qmui.util.QMUIKeyboardHelper
//import com.qmuiteam.qmui.util.QMUIStatusBarHelper
//import kotlinx.coroutines.Dispatchers
//import kotlinx.coroutines.launch
//import kotlinx.coroutines.withContext
//import java.util.*
//
//@Route(path = CRouter.editUserInfo)
//class LoginPageEditInfoActivity :
//    BaseActivity<ActivityLoginPageEditInfoBinding, EditInfoViewModel>() {
//
//    override fun getLayout() = R.layout.activity_login_page_edit_info
//
//    override fun initVariableId() = BR.vm
//
//    override fun initData() {
//        QMUIStatusBarHelper.translucent(this)
//        QMUIStatusBarHelper.setStatusBarLightMode(this)
//        binding.flTitle.updatePadding(top = statusHeight)
//        viewModel.phone = intent.getStringExtra(PHONE) ?: ""
//        viewModel.token = intent.getStringExtra(TOKEN) ?: ""
//    }
//
//
//    override fun initViewObservable() {
//        binding.ivUploadHead.onClick { selectPic() }
//        binding.tvSelectGender.onClick(block = ::selectGender)
//        binding.tvSelectBirthday.onClick(block = ::selectBirthday)
//
//        binding.tvFinish.onClick {
//            pushInfo()
//        }
//        binding.tvBack.onClick {
//            onBackPressed()
//        }
//    }
//
//
//    private fun pushInfo() {
//        lifecycleScope.launch {
//            viewModel.pushInfo()
//        }
//    }
//
//
//    private fun selectGender(it: View) {
//        QMUIKeyboardHelper.hideKeyboard(it)
//        XPopup.Builder(this)
//            .asBottomList("选择性别", arrayOf("男", "女", "保密")) { position, _ ->
//                viewModel.gender.value = when (position) {
//                    0 -> SEX_BOY
//                    1 -> SEX_GIRL
//                    else -> SEX_SECRET
//                }
//            }
//            .show()
//    }
//
//    private fun selectBirthday(it: View) {
//        QMUIKeyboardHelper.hideKeyboard(it)
//        val pickOption = PickerOptions(PickerOptions.TYPE_PICKER_TIME).apply {
//            this.context = this@LoginPageEditInfoActivity
//            timeSelectListener = OnTimeSelectListener { date, _ ->
//                viewModel.birthdayStamp.value = date.time
//            }
//            isDialog = false
//            cancelable = true
//            date = Calendar.getInstance().apply { set(2000, 5, 15) }
//        }
//        val pickerView = TimePickerView(pickOption)
//        pickerView.show()
//    }
//
//
//    private fun selectPic() {
//        val cropStyle = PictureCropParameterStyle(Color.WHITE, Color.WHITE, Color.BLACK, true)
//        cropStyle.setCropTitle("裁剪头像")
//        PictureSelector.create(this)
//            .openGallery(PictureMimeType.ofImage()) // 全部.PictureMimeType.ofAll()、图片.ofImage()、视频.ofVideo()、音频.ofAudio()
//            .imageEngine(GlideEngine.createGlideEngine()) // 外部传入图片加载引擎，必传项
//            .isWeChatStyle(true) // 是否开启微信图片选择风格
//            .isUseCustomCamera(false) // 是否使用自定义相机
//            .imageSpanCount(3) // 每行显示个数
//            .isReturnEmpty(true) // 未选择数据时点击按钮是否可以返回
//            .isAndroidQTransform(true)// 是否需要处理Android Q 拷贝至应用沙盒的操作，只针对compress(false); && enableCrop(false);有效,默认处理
//            .setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED) // 设置相册Activity方向，不设置默认使用系统
//            .isOriginalImageControl(false) // 是否显示原图控制按钮，如果设置为true则用户可以自由选择是否使用原图，压缩、裁剪功能将会失效
//            .selectionMode(PictureConfig.SINGLE) // 多选 or 单选
//            .isSingleDirectReturn(true) // 单选模式下是否直接返回，PictureConfig.SINGLE模式下有效
//            .previewImage(true) // 是否可预览图片
//            .isCamera(true) // 是否显示拍照按钮
//            .isCameraAroundState(true)//设置为前置摄像头
//            .isZoomAnim(true) // 图片列表点击 缩放效果 默认true
//            .enableCrop(true) // 是否裁剪
//            .setPictureCropStyle(cropStyle)
//            .compress(true) // 是否压缩
//            .synOrAsy(true) //同步true或异步false 压缩 默认同步
//            .withAspectRatio(1, 1)// 裁剪比例
//            .hideBottomControls(true) // 是否显示uCrop工具栏，默认不显示
//            .freeStyleCropEnabled(false) // 裁剪框是否可拖拽
//            .circleDimmedLayer(false) // 是否圆形裁剪
//            .showCropFrame(true) // 是否显示裁剪矩形边框 圆形裁剪时建议设为false
//            .showCropGrid(false) // 是否显示裁剪矩形网格 圆形裁剪时建议设为false
//            .cutOutQuality(100) // 裁剪输出质量 默认100
//            .minimumCompressSize(1000) // 小于1mb的图片不压缩
//            .forResult(object : OnResultCallbackListener {
//                override fun onResult(result: List<LocalMedia>?) {
//                    result?.takeUnless { result.isEmpty() }?.first()?.let {
//                        uploadBg(it)
//                    }
//                }
//
//                override fun onCancel() {
//                    Log.i("sss", "取消选择")
//                }
//            })
//    }
//
//    private fun uploadBg(result: LocalMedia) {
//        lifecycleScope.launch {
//            showLoading()
//            ///获取七牛云上传图片token
//            val token = kotlin.runCatching {
//                ApiService.instance
//                    .uploadToken(getBody())
//                    .checkData()
//                    .get("uploadToken").asString
//            }.getOrNull()
//            if (token == null) {
//                "网络异常,请重试...".toast()
//                disDialog()
//                return@launch
//            }
//            val headPhotoKey = uploadImgToQN(token, result.cutPath, QiNiuUtils.HEAD)
//            if (headPhotoKey != null) {
//                setHead(result.cutPath)
//                viewModel.headPhotoKey.value = headPhotoKey
//            } else {
//                "上传失败,请稍后重试".toast()
//            }
//            disDialog()
//        }
//    }
//
//    /**上传照片到七牛云*/
//    private suspend fun uploadImgToQN(token: String, imgPath: String, type: Int): String? {
//        val photoKey = withContext(Dispatchers.IO) {
//            ///获取七牛云上传图片token
//            val key = QiNiuUtils.getKeyOfImg("lej008", type)
//            QiNiuUtils.upload(imgPath, token, key)
//        }
//        if (photoKey.isNullOrEmpty()) {
//            "上传失败,请重试...".toast()
//            return null
//        }
//        return photoKey
//    }
//
//    private fun setHead(headUrl: String) {
//        load(headUrl, binding.ivUploadHead)
//    }
//
//}